package com.kfm.coll;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.function.Consumer;

public class ArrayListDemo {

    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add(1); // 将元素添加到集合的末尾
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        list.add(2, 2); // 2, 1,2,3,4,5
        System.out.println(list);
        ArrayList list2 = new ArrayList();
        list2.addAll(list);
        System.out.println(list2);

        // 将每一个元素 传递给 Consumer 的 accept 方法

        Consumer con = new Consumer() {
            @Override
            public void accept(Object o) {
                System.out.println(o);
            }
        };

        // 遍历集合 1. forEach()
        // list.forEach(o -> {
        //     System.out.println(o);
        // });
        System.out.println(list.size());
        System.out.println(list.get(0));
        // 2. 按照下标 size() get()
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        int[] arr = {1,2,3,4};
        for (int a : arr) {
            System.out.println(a);
        }
        // 3. 增强for循环 for(数据类型 变量名 : 集合) {}
        for (Object o : list) {
            System.out.println(o);
        }
        System.out.println("Iterator");
        // 4. 迭代器
        Iterator iterator = list.iterator();
        // hasNext() -- 有没有下一个元素  next() 获取下一个元素
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
    }
}

class MyConsumer implements Consumer {

    @Override
    public void accept(Object o) {
        System.out.println(o);
    }
}
